defn
এবং Anonymous Functions (fn
)Clojure এ ফাংশন ডিক্লারেশন করার দুটি প্রধান পদ্ধতি আছে: defn
এবং অজানা ফাংশন (Anonymous Functions), যা fn
ব্যবহার করে তৈরি করা হয়। defn
মূলত নামযুক্ত ফাংশন তৈরি করতে ব্যবহৃত হয়, যেখানে অজানা ফাংশনগুলি সাধারণত এককালীন বা কনটেক্সচুয়াল কাজে ব্যবহৃত হয়।
defn
- Named Function DeclarationClojure-এ defn
কীওয়ার্ড ব্যবহার করে একটি নামযুক্ত ফাংশন ডিক্লারেশন করা যায়। এটি একটি পরিচিত পদ্ধতি, যেখানে ফাংশনের নাম এবং এর প্যারামিটারগুলি নির্ধারণ করা হয়।
defn
এর সাধারণ সিনট্যাক্স(defn function-name
"Optional docstring explaining the function"
[param1 param2 ...]
(expression-to-evaluate))
(defn যোগফল
"দুটি সংখ্যার যোগফল প্রদান করে"
[a b]
(+ a b))
(যোগফল ৫ ১০) ; আউটপুট: ১৫
এখানে, যোগফল
নামে একটি ফাংশন ডিক্লেয়ার করা হয়েছে যা দুইটি প্যারামিটার গ্রহণ করে এবং তাদের যোগফল প্রদান করে।
Clojure এ defn
ফাংশনে একাধিক প্যারামিটার ভ্যারিয়েন্ট যুক্ত করা যায়, যা বিভিন্ন সংখ্যক আর্গুমেন্ট গ্রহণ করতে পারে।
(defn যোগফল
([a] a)
([a b] (+ a b))
([a b c] (+ a b c)))
(যোগফল ১০) ; আউটপুট: ১০
(যোগফল ৫ ১৫) ; আউটপুট: ২০
(যোগফল ১ ২ ৩) ; আউটপুট: ৬
এখানে, যোগফল
ফাংশন বিভিন্ন সংখ্যক আর্গুমেন্ট গ্রহণ করতে সক্ষম।
fn
)Anonymous Functions বা অজানা ফাংশনগুলি এককালীন কাজে ব্যবহৃত হয় এবং কোনো নির্দিষ্ট নাম থাকে না। সাধারণত সংক্ষিপ্ত ও কনটেক্সট-ভিত্তিক কাজের জন্য এই ফাংশনগুলি ব্যবহৃত হয়।
fn
এর সাধারণ সিনট্যাক্স(fn [param1 param2 ...]
(expression-to-evaluate))
((fn [x y] (+ x y)) ১০ ২০) ; আউটপুট: ৩০
এখানে (fn [x y] (+ x y))
একটি অজানা ফাংশন, যা দুইটি আর্গুমেন্টের যোগফল প্রদান করে এবং নাম ছাড়াই সরাসরি কল করা হয়েছে।
#()
Clojure এ অজানা ফাংশনের জন্য শর্টকাট সিনট্যাক্স #()
ব্যবহার করা যায়। এটি এক বা দুই লাইনের ফাংশনের জন্য সুবিধাজনক। #
চিহ্ন দিয়ে শুরু করে প্যারামিটার %
দিয়ে প্রকাশ করা হয়।
(#(+ %1 %2) ১০ ২০) ; আউটপুট: ৩০
এখানে, %1
এবং %2
যথাক্রমে প্রথম এবং দ্বিতীয় আর্গুমেন্ট হিসেবে ব্যবহৃত হয়েছে।
Anonymous Functions সাধারণত map
, filter
, এবং reduce
এর মতো হাই-অর্ডার ফাংশনগুলির সাথে ব্যবহৃত হয়।
(map (fn [x] (* x x)) [1 2 3 4]) ; আউটপুট: (1 4 9 16)
(map #(* % %) [1 2 3 4]) ; আউটপুট: (1 4 9 16)
এখানে, একটি অজানা ফাংশন প্রতিটি উপাদানকে তার বর্গফল প্রদান করে।
defn
: নামযুক্ত ফাংশন তৈরির জন্য ব্যবহৃত হয়, যেখানে ফাংশনের নাম এবং প্যারামিটার উল্লেখ করা হয়।fn
): এককালীন কাজের জন্য নামহীন ফাংশন ব্যবহৃত হয়, যা সরাসরি ব্যবহারযোগ্য।#()
: Anonymous Functions এর জন্য সংক্ষিপ্ত সিনট্যাক্স, যেখানে %
চিহ্ন দিয়ে প্যারামিটার প্রকাশ করা হয়।Clojure এ defn
এবং Anonymous Functions এর মাধ্যমে প্রোগ্রামিং আরও সংক্ষিপ্ত এবং কার্যকর হয়।
common.read_more